const messageModel = require('./model/messageModel');
const {Op} = require("sequelize");
const blogModel = require('./model/blogModel');

// 添加留言或者评论
module.exports.addMessageDao = async function (newMessage) {
    const result = await messageModel.create(newMessage);
    return result.dataValues
}

// 获取留言或者评论
module.exports.getMessageByPageDao = async function (pageInfo) {
    if (pageInfo.blogId) {
        if (pageInfo.blogId === 'all') {
            return await messageModel.findAndCountAll({
                offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
                limit: pageInfo.limit * 1,
                where: {
                    blogId: {
                        [Op.ne]: null
                    }
                },
                include: [
                    {
                        model: blogModel,
                        as: 'blog',
                    }
                ]
            });
        } else {
            return await messageModel.findAndCountAll({
                offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
                limit: pageInfo.limit * 1,
                where: {
                    blogId: pageInfo.blogId * 1
                },
                order: [
                    ['createDate', 'DESC']
                ]
            });
        }
    } else {
        return await messageModel.findAndCountAll({
            offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
            limit: pageInfo.limit * 1,
            where: {
                blogId: null
            },
            order: [
                ['createDate', 'DESC']
            ]
        });
    }
}

// 删除留言或者评论(根据主键删除)
module.exports.deleteMessageDao = async function (id) {
    return await messageModel.destroy({
        where: {
            id
        }
    })
}

// 删除留言或者评论(根据blogId删除)
module.exports.deleteMessageByBlogIdDao = async function (blogId) {
    return await messageModel.destroy({
        where: {
            blogId
        }
    })
}